<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>01过渡</title>
    <style>
        *{
            margin: 0;
            padding: 0;
        }
        .box1{
            width: 800px;
            height: 800px;
            background-color: silver;
            overflow: hidden;
        }
        .box1 div{
            width: 100px;
            height: 100px;
            margin-bottom: 100px;
        }
        .box2{
            background-color: #bfa;

            /* 设置box2动画 */
            /* animation-name 要对当前元素生效的关键帧的名字 */
            animation-name: test;
            /* animation-duration 动画执行的时间 */
            animation-duration: 2s;
            /* 设置动画延迟 */
            animation-delay: 1s;
            /* 设置动画运动方式 */
            animation-timing-function: linear;
            /* animation-iteration-count: ;动画执行次数
                    可选值：
                            次数
                            infinite 无限
             */
            animation-iteration-count: infinite;
            /* animation-direction 
                    指定动画运行的方向
                        normal 默认值 每次都从from 到 to 执行
                        reverse 每次都从from 到 to 执行
                        alternate 从from 到to 执行，但是重复执行动画时会一次正一次反
                        alternate-reverse 从 to 到from 执行，但是重复执行动画时会一次正一次反
            */
            animation-direction: alternate;
            /* animation-play-state 设置动画的执行状态
                    可选值
                        running 默认值 动画执行
                        pause 动画暂停
            */
            animation-play-state: running;
            /* animation-fill-mode 设置动画的填充模式
                    可选值
                        none 默认值 动画执行完毕，回到原来位置
                        forward 动画执行完毕，元素会停在动画结束的位置
                        backwards 动画延时等待时，元素就会处于开始位置
                        both 结合了forward和backwards
            */
            animation-fill-mode: ;
        }
        /* 
        动画
            与过渡类似，都是可以实现一些动态的效果
                不同的是过渡需要在某个属性发生变化才能触发
                动画可以自动触发

            设置动画效果需要先设置一个关键帧，关键帧设置了动画执行每一个步骤
        */
        @keyframes test{
            /* from表示动画的开始位置 可用0%代替*/
            from{
                margin-left: 0px;
                margin-top: 0;
            }
            50%{
                margin-top: 100px;
            }

            /* to 表示动画的结束位置 可用100%代替 */
            to{
                margin-left: 700px;
                margin-top: 0;
            }
            }
        }
    </style>
</head>
<body>
    <div class="box1">
        <div class="box2"></div>
        <div class="box3"></div>
    </div>
</body>
</html>